#ifndef __CWIT_MAP_H__
#define __CWIT_MAP_H__
#ifdef __cplusplus
extern "C" {
#endif

#include "cwit_list.h"
/*
创建链表，开辟空间，当空间使用完毕后增加链表下一个节点，默认空间大小为16
[][][][][][][][][][][][][][][][]
|
[][][][][][][][][][][][][][][][]
|
[][][][][][][][][][][][][][][][]
|
NULL
*/
typedef void (*cwit_map_traversal_fun)(void *key,int keysize,void *data,int datasize);
typedef struct __cwit_map_data{
    void *index;
    void *data;
    int isuse;
    int indexSize;
    int dataSize;
}cwit_map_dat;
typedef struct __cwit_map{
    int capacity;
    cwit_list table_list;
}cwit_map;
void cwit_map_set_capacity();//设置map表容量，默认为16,必须在添加数据之前调用

//插入
void cwit_map_insert(cwit_map *map,void *index,int indexsize,void *data,int dataSize); //添加映射

//删除
void* cwit_map_remove_key(cwit_map *map,void *index,int indexsize);

void cwit_map_traversal(cwit_map *map,cwit_map_traversal_fun calbak);//遍历映射
void* cwit_map_get_value(cwit_map *map,void *index,int indexsize);//获取映射值

#ifdef __cplusplus
}
#endif
#endif